{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torchvision\n",
    "from torchvision import transforms\n",
    "import torch.utils.data as Data\n",
    "import matplotlib.pyplot as plt\n",
    "from IPython.core.interactiveshell import InteractiveShell \n",
    "InteractiveShell.ast_node_interactivity = 'all'\n",
    "from IPython import display\n",
    "from pydataset import data  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "图像分类数据集，读取数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式，\n",
    "# 并除以255使得所有像素的数值均在0到1之间\n",
    "trans = transforms.ToTensor()\n",
    "mnist_train = torchvision.datasets.FashionMNIST(\n",
    "root=\"../data\", train=True, transform=trans, download=True)\n",
    "mnist_test = torchvision.datasets.FashionMNIST(\n",
    "root=\"../data\", train=False, transform=trans, download=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000, 10000)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "torch.Size([1, 28, 28])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(mnist_train), len(mnist_test)\n",
    "mnist_train[0][0].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_fashion_mnist_labels(labels): #@save\n",
    "    \"\"\"返回Fashion-MNIST数据集的⽂本标签\"\"\"\n",
    "    text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat',\n",
    "    'sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']\n",
    "    return [text_labels[int(i)] for i in labels]\n",
    "def show_images(imgs, num_rows, num_cols, titles=None, scale=1.5): #@save\n",
    "    \"\"\"绘制图像列表\"\"\"\n",
    "    figsize = (num_cols * scale, num_rows * scale)\n",
    "    _, axes = plt.subplots(num_rows, num_cols, figsize=figsize)\n",
    "    axes = axes.flatten()\n",
    "    for i, (ax, img) in enumerate(zip(axes, imgs)):\n",
    "        if torch.is_tensor(img):\n",
    "            # 图⽚张量\n",
    "            ax.imshow(img.numpy())\n",
    "        else:\n",
    "            # PIL图⽚\n",
    "            ax.imshow(img)\n",
    "        ax.axes.get_xaxis().set_visible(False)\n",
    "        ax.axes.get_yaxis().set_visible(False)\n",
    "        if titles:\n",
    "            ax.set_title(titles[i])\n",
    "    return axes\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 972x216 with 18 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X, y = next(iter(Data.DataLoader(mnist_train, batch_size=18)))\n",
    "show_images(X.reshape(18, 28, 28), 2, 9, titles=get_fashion_mnist_labels(y));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 256\n",
    "def get_dataloader_workers(): #@save\n",
    "    \"\"\"使⽤4个进程来读取数据\"\"\"\n",
    "    return 4\n",
    "train_iter = Data.DataLoader(mnist_train, batch_size, shuffle=True,\n",
    "num_workers=get_dataloader_workers())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "整合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_data_fashion_mnist(batch_size, resize=None): #@save\n",
    "    \"\"\"下载Fashion-MNIST数据集，然后将其加载到内存中\"\"\"\n",
    "    trans = [transforms.ToTensor()]\n",
    "    if resize:\n",
    "        trans.insert(0, transforms.Resize(resize))\n",
    "    trans = transforms.Compose(trans)\n",
    "    mnist_train = torchvision.datasets.FashionMNIST(\n",
    "        root=\"../data\", train=True, transform=trans, download=True)\n",
    "    mnist_test = torchvision.datasets.FashionMNIST(\n",
    "        root=\"../data\", train=False, transform=trans, download=True)\n",
    "    return (Data.DataLoader(mnist_train, batch_size, shuffle=True,\n",
    "            num_workers=get_dataloader_workers()),\n",
    "    Data.DataLoader(mnist_test, batch_size, shuffle=False,\n",
    "            num_workers=get_dataloader_workers()))\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([32, 1, 64, 64]) torch.float32 torch.Size([32]) torch.int64\n"
     ]
    }
   ],
   "source": [
    "train_iter, test_iter = load_data_fashion_mnist(32, resize=64)\n",
    "for X, y in train_iter:\n",
    "    print(X.shape, X.dtype, y.shape, y.dtype)\n",
    "    break\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 256\n",
    "train_iter, test_iter = load_data_fashion_mnist(batch_size)\n",
    "num_inputs = 784\n",
    "num_outputs = 10\n",
    "W = torch.normal(0, 0.01, size=(num_inputs, num_outputs), requires_grad=True)\n",
    "b = torch.zeros(num_outputs, requires_grad=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def softmax(X):\n",
    "    X_exp = torch.exp(X)\n",
    "    partition = X_exp.sum(1, keepdim=True)\n",
    "    return X_exp / partition # 这⾥应⽤了⼴播机制"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(tensor([[0.1545, 0.1453, 0.3017, 0.2942, 0.1043],\n",
       "         [0.3619, 0.4109, 0.0553, 0.1100, 0.0619]]), tensor([1., 1.]))"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = torch.normal(0, 1, (2, 5))\n",
    "X_prob = softmax(X)\n",
    "X_prob, X_prob.sum(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def net(X):\n",
    "    return softmax(torch.matmul(X.reshape((-1, W.shape[0])), W) + b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([0.1000, 0.5000])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = torch.tensor([0, 2])\n",
    "y_hat = torch.tensor([[0.1, 0.3, 0.6], [0.3, 0.2, 0.5]])\n",
    "y_hat[[0, 1], y]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([2.3026, 0.6931])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def cross_entropy(y_hat, y):\n",
    "    return - torch.log(y_hat[range(len(y_hat)), y])\n",
    "cross_entropy(y_hat, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def accuracy(y_hat, y): #@save\n",
    "    \"\"\"计算预测正确的数量\"\"\"\n",
    "    if len(y_hat.shape) > 1 and y_hat.shape[1] > 1:\n",
    "        y_hat = y_hat.argmax(axis=1)\n",
    "    cmp = y_hat.type(y.dtype) == y\n",
    "    return float(cmp.type(y.dtype).sum())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def evaluate_accuracy(net, data_iter): #@save\n",
    "    \"\"\"计算在指定数据集上模型的精度\"\"\"\n",
    "    if isinstance(net, torch.nn.Module):\n",
    "        net.eval() # 将模型设置为评估模式\n",
    "    metric = Accumulator(2) # 正确预测数、预测总数\n",
    "    with torch.no_grad():\n",
    "        for X, y in data_iter:\n",
    "            metric.add(accuracy(net(X), y), y.numel())\n",
    "    return metric[0] / metric[1]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Accumulator: #@save\n",
    "    \"\"\"在n个变量上累加\"\"\"\n",
    "    def __init__(self, n):\n",
    "        self.data = [0.0] * n\n",
    "    def add(self, *args):\n",
    "        self.data = [a + float(b) for a, b in zip(self.data, args)]\n",
    "    def reset(self):\n",
    "        self.data = [0.0] * len(self.data)\n",
    "    def __getitem__(self, idx):\n",
    "        return self.data[idx]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0937"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "evaluate_accuracy(net, test_iter)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "def train_epoch_ch3(net, train_iter, loss, updater): #@save\n",
    "    \"\"\"训练模型⼀个迭代周期（定义⻅第3章）\"\"\"\n",
    "    # 将模型设置为训练模式\n",
    "    if isinstance(net, torch.nn.Module):\n",
    "        net.train()\n",
    "    # 训练损失总和、训练准确度总和、样本数\n",
    "    metric = Accumulator(3)\n",
    "    for X, y in train_iter:\n",
    "        # 计算梯度并更新参数\n",
    "        y_hat = net(X)\n",
    "        l = loss(y_hat, y)\n",
    "        if isinstance(updater, torch.optim.Optimizer):\n",
    "            # 使⽤PyTorch内置的优化器和损失函数\n",
    "            updater.zero_grad()\n",
    "            l.sum().backward()\n",
    "            updater.step()\n",
    "        else:\n",
    "            # 使⽤定制的优化器和损失函数\n",
    "            l.sum().backward()\n",
    "            updater(X.shape[0])\n",
    "            metric.add(float(l.sum()), accuracy(y_hat, y), y.numel())\n",
    "    # 返回训练损失和训练精度\n",
    "    return metric[0] / metric[2], metric[1] / metric[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-34-1fb101c3c385>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m     68\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0msgd\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mW\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mb\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     69\u001b[0m \u001b[0mnum_epochs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m10\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 70\u001b[1;33m \u001b[0mtrain_ch3\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnet\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain_iter\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtest_iter\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcross_entropy\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnum_epochs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mupdater\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32m<ipython-input-34-1fb101c3c385>\u001b[0m in \u001b[0;36mtrain_ch3\u001b[1;34m(net, train_iter, test_iter, loss, num_epochs, updater)\u001b[0m\n\u001b[0;32m     54\u001b[0m     legend=['train loss', 'train acc', 'test acc'])\n\u001b[0;32m     55\u001b[0m     \u001b[1;32mfor\u001b[0m \u001b[0mepoch\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnum_epochs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 56\u001b[1;33m         \u001b[0mtrain_metrics\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtrain_epoch_ch3\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnet\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain_iter\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mloss\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mupdater\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     57\u001b[0m         \u001b[0mtest_acc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mevaluate_accuracy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnet\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtest_iter\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     58\u001b[0m         \u001b[0manimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madd\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mepoch\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrain_metrics\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mtest_acc\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m<ipython-input-27-a7a1b48cde8e>\u001b[0m in \u001b[0;36mtrain_epoch_ch3\u001b[1;34m(net, train_iter, loss, updater)\u001b[0m\n\u001b[0;32m      6\u001b[0m     \u001b[1;31m# 训练损失总和、训练准确度总和、样本数\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      7\u001b[0m     \u001b[0mmetric\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mAccumulator\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m     \u001b[1;32mfor\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mtrain_iter\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      9\u001b[0m         \u001b[1;31m# 计算梯度并更新参数\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     10\u001b[0m         \u001b[0my_hat\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnet\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\microsoft visual studio\\shared\\python36_64\\lib\\site-packages\\torch\\utils\\data\\dataloader.py\u001b[0m in \u001b[0;36m__next__\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    433\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_sampler_iter\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    434\u001b[0m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_reset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 435\u001b[1;33m         \u001b[0mdata\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_next_data\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    436\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_num_yielded\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    437\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_dataset_kind\u001b[0m \u001b[1;33m==\u001b[0m \u001b[0m_DatasetKind\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIterable\u001b[0m \u001b[1;32mand\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\microsoft visual studio\\shared\\python36_64\\lib\\site-packages\\torch\\utils\\data\\dataloader.py\u001b[0m in \u001b[0;36m_next_data\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m   1055\u001b[0m                 \u001b[1;31m# no valid `self._rcvd_idx` is found (i.e., didn't break)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1056\u001b[0m                 \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_persistent_workers\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1057\u001b[1;33m                     \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_shutdown_workers\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1058\u001b[0m                 \u001b[1;32mraise\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1059\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\microsoft visual studio\\shared\\python36_64\\lib\\site-packages\\torch\\utils\\data\\dataloader.py\u001b[0m in \u001b[0;36m_shutdown_workers\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m   1175\u001b[0m                         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_mark_worker_as_unavailable\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mworker_id\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mshutdown\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1176\u001b[0m                 \u001b[1;32mfor\u001b[0m \u001b[0mw\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_workers\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1177\u001b[1;33m                     \u001b[0mw\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0m_utils\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mMP_STATUS_CHECK_INTERVAL\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   1178\u001b[0m                     \u001b[1;32mif\u001b[0m \u001b[0mw\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mis_alive\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   1179\u001b[0m                         \u001b[1;31m# Existing mechanisms try to make the workers exit\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\microsoft visual studio\\shared\\python36_64\\lib\\multiprocessing\\process.py\u001b[0m in \u001b[0;36mjoin\u001b[1;34m(self, timeout)\u001b[0m\n\u001b[0;32m    122\u001b[0m         \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_parent_pid\u001b[0m \u001b[1;33m==\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgetpid\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'can only join a child process'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    123\u001b[0m         \u001b[1;32massert\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_popen\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'can only join a started process'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 124\u001b[1;33m         \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_popen\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    125\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mres\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    126\u001b[0m             \u001b[0m_children\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdiscard\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32md:\\microsoft visual studio\\shared\\python36_64\\lib\\multiprocessing\\popen_spawn_win32.py\u001b[0m in \u001b[0;36mwait\u001b[1;34m(self, timeout)\u001b[0m\n\u001b[0;32m     78\u001b[0m                 \u001b[0mmsecs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmax\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtimeout\u001b[0m \u001b[1;33m*\u001b[0m \u001b[1;36m1000\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m0.5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     79\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 80\u001b[1;33m             \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_winapi\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mWaitForSingleObject\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_handle\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmsecs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     81\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m==\u001b[0m \u001b[0m_winapi\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mWAIT_OBJECT_0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     82\u001b[0m                 \u001b[0mcode\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_winapi\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGetExitCodeProcess\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_handle\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n",
       "<svg height=\"180.65625pt\" version=\"1.1\" viewBox=\"0 0 238.965625 180.65625\" width=\"238.965625pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n",
       " <defs>\r\n",
       "  <style type=\"text/css\">\r\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\r\n",
       "  </style>\r\n",
       " </defs>\r\n",
       " <g id=\"figure_1\">\r\n",
       "  <g id=\"patch_1\">\r\n",
       "   <path d=\"M 0 180.65625 \r\n",
       "L 238.965625 180.65625 \r\n",
       "L 238.965625 0 \r\n",
       "L 0 0 \r\n",
       "z\r\n",
       "\" style=\"fill:none;\"/>\r\n",
       "  </g>\r\n",
       "  <g id=\"axes_1\">\r\n",
       "   <g id=\"patch_2\">\r\n",
       "    <path d=\"M 30.103125 143.1 \r\n",
       "L 225.403125 143.1 \r\n",
       "L 225.403125 7.2 \r\n",
       "L 30.103125 7.2 \r\n",
       "z\r\n",
       "\" style=\"fill:#ffffff;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"matplotlib.axis_1\">\r\n",
       "    <g id=\"xtick_1\">\r\n",
       "     <g id=\"line2d_1\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 51.803125 143.1 \r\n",
       "L 51.803125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_2\">\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 0 0 \r\n",
       "L 0 3.5 \r\n",
       "\" id=\"mc0737f0bdd\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n",
       "      </defs>\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.803125\" xlink:href=\"#mc0737f0bdd\" y=\"143.1\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_1\">\r\n",
       "      <!-- 2 -->\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 19.1875 8.296875 \r\n",
       "L 53.609375 8.296875 \r\n",
       "L 53.609375 0 \r\n",
       "L 7.328125 0 \r\n",
       "L 7.328125 8.296875 \r\n",
       "Q 12.9375 14.109375 22.625 23.890625 \r\n",
       "Q 32.328125 33.6875 34.8125 36.53125 \r\n",
       "Q 39.546875 41.84375 41.421875 45.53125 \r\n",
       "Q 43.3125 49.21875 43.3125 52.78125 \r\n",
       "Q 43.3125 58.59375 39.234375 62.25 \r\n",
       "Q 35.15625 65.921875 28.609375 65.921875 \r\n",
       "Q 23.96875 65.921875 18.8125 64.3125 \r\n",
       "Q 13.671875 62.703125 7.8125 59.421875 \r\n",
       "L 7.8125 69.390625 \r\n",
       "Q 13.765625 71.78125 18.9375 73 \r\n",
       "Q 24.125 74.21875 28.421875 74.21875 \r\n",
       "Q 39.75 74.21875 46.484375 68.546875 \r\n",
       "Q 53.21875 62.890625 53.21875 53.421875 \r\n",
       "Q 53.21875 48.921875 51.53125 44.890625 \r\n",
       "Q 49.859375 40.875 45.40625 35.40625 \r\n",
       "Q 44.1875 33.984375 37.640625 27.21875 \r\n",
       "Q 31.109375 20.453125 19.1875 8.296875 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-50\"/>\r\n",
       "      </defs>\r\n",
       "      <g transform=\"translate(48.621875 157.698438)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-50\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"xtick_2\">\r\n",
       "     <g id=\"line2d_3\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 95.203125 143.1 \r\n",
       "L 95.203125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_4\">\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"95.203125\" xlink:href=\"#mc0737f0bdd\" y=\"143.1\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_2\">\r\n",
       "      <!-- 4 -->\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 37.796875 64.3125 \r\n",
       "L 12.890625 25.390625 \r\n",
       "L 37.796875 25.390625 \r\n",
       "z\r\n",
       "M 35.203125 72.90625 \r\n",
       "L 47.609375 72.90625 \r\n",
       "L 47.609375 25.390625 \r\n",
       "L 58.015625 25.390625 \r\n",
       "L 58.015625 17.1875 \r\n",
       "L 47.609375 17.1875 \r\n",
       "L 47.609375 0 \r\n",
       "L 37.796875 0 \r\n",
       "L 37.796875 17.1875 \r\n",
       "L 4.890625 17.1875 \r\n",
       "L 4.890625 26.703125 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-52\"/>\r\n",
       "      </defs>\r\n",
       "      <g transform=\"translate(92.021875 157.698438)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-52\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"xtick_3\">\r\n",
       "     <g id=\"line2d_5\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 138.603125 143.1 \r\n",
       "L 138.603125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_6\">\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"138.603125\" xlink:href=\"#mc0737f0bdd\" y=\"143.1\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_3\">\r\n",
       "      <!-- 6 -->\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 33.015625 40.375 \r\n",
       "Q 26.375 40.375 22.484375 35.828125 \r\n",
       "Q 18.609375 31.296875 18.609375 23.390625 \r\n",
       "Q 18.609375 15.53125 22.484375 10.953125 \r\n",
       "Q 26.375 6.390625 33.015625 6.390625 \r\n",
       "Q 39.65625 6.390625 43.53125 10.953125 \r\n",
       "Q 47.40625 15.53125 47.40625 23.390625 \r\n",
       "Q 47.40625 31.296875 43.53125 35.828125 \r\n",
       "Q 39.65625 40.375 33.015625 40.375 \r\n",
       "z\r\n",
       "M 52.59375 71.296875 \r\n",
       "L 52.59375 62.3125 \r\n",
       "Q 48.875 64.0625 45.09375 64.984375 \r\n",
       "Q 41.3125 65.921875 37.59375 65.921875 \r\n",
       "Q 27.828125 65.921875 22.671875 59.328125 \r\n",
       "Q 17.53125 52.734375 16.796875 39.40625 \r\n",
       "Q 19.671875 43.65625 24.015625 45.921875 \r\n",
       "Q 28.375 48.1875 33.59375 48.1875 \r\n",
       "Q 44.578125 48.1875 50.953125 41.515625 \r\n",
       "Q 57.328125 34.859375 57.328125 23.390625 \r\n",
       "Q 57.328125 12.15625 50.6875 5.359375 \r\n",
       "Q 44.046875 -1.421875 33.015625 -1.421875 \r\n",
       "Q 20.359375 -1.421875 13.671875 8.265625 \r\n",
       "Q 6.984375 17.96875 6.984375 36.375 \r\n",
       "Q 6.984375 53.65625 15.1875 63.9375 \r\n",
       "Q 23.390625 74.21875 37.203125 74.21875 \r\n",
       "Q 40.921875 74.21875 44.703125 73.484375 \r\n",
       "Q 48.484375 72.75 52.59375 71.296875 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-54\"/>\r\n",
       "      </defs>\r\n",
       "      <g transform=\"translate(135.421875 157.698438)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-54\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"xtick_4\">\r\n",
       "     <g id=\"line2d_7\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 182.003125 143.1 \r\n",
       "L 182.003125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_8\">\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"182.003125\" xlink:href=\"#mc0737f0bdd\" y=\"143.1\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_4\">\r\n",
       "      <!-- 8 -->\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 31.78125 34.625 \r\n",
       "Q 24.75 34.625 20.71875 30.859375 \r\n",
       "Q 16.703125 27.09375 16.703125 20.515625 \r\n",
       "Q 16.703125 13.921875 20.71875 10.15625 \r\n",
       "Q 24.75 6.390625 31.78125 6.390625 \r\n",
       "Q 38.8125 6.390625 42.859375 10.171875 \r\n",
       "Q 46.921875 13.96875 46.921875 20.515625 \r\n",
       "Q 46.921875 27.09375 42.890625 30.859375 \r\n",
       "Q 38.875 34.625 31.78125 34.625 \r\n",
       "z\r\n",
       "M 21.921875 38.8125 \r\n",
       "Q 15.578125 40.375 12.03125 44.71875 \r\n",
       "Q 8.5 49.078125 8.5 55.328125 \r\n",
       "Q 8.5 64.0625 14.71875 69.140625 \r\n",
       "Q 20.953125 74.21875 31.78125 74.21875 \r\n",
       "Q 42.671875 74.21875 48.875 69.140625 \r\n",
       "Q 55.078125 64.0625 55.078125 55.328125 \r\n",
       "Q 55.078125 49.078125 51.53125 44.71875 \r\n",
       "Q 48 40.375 41.703125 38.8125 \r\n",
       "Q 48.828125 37.15625 52.796875 32.3125 \r\n",
       "Q 56.78125 27.484375 56.78125 20.515625 \r\n",
       "Q 56.78125 9.90625 50.3125 4.234375 \r\n",
       "Q 43.84375 -1.421875 31.78125 -1.421875 \r\n",
       "Q 19.734375 -1.421875 13.25 4.234375 \r\n",
       "Q 6.78125 9.90625 6.78125 20.515625 \r\n",
       "Q 6.78125 27.484375 10.78125 32.3125 \r\n",
       "Q 14.796875 37.15625 21.921875 38.8125 \r\n",
       "z\r\n",
       "M 18.3125 54.390625 \r\n",
       "Q 18.3125 48.734375 21.84375 45.5625 \r\n",
       "Q 25.390625 42.390625 31.78125 42.390625 \r\n",
       "Q 38.140625 42.390625 41.71875 45.5625 \r\n",
       "Q 45.3125 48.734375 45.3125 54.390625 \r\n",
       "Q 45.3125 60.0625 41.71875 63.234375 \r\n",
       "Q 38.140625 66.40625 31.78125 66.40625 \r\n",
       "Q 25.390625 66.40625 21.84375 63.234375 \r\n",
       "Q 18.3125 60.0625 18.3125 54.390625 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-56\"/>\r\n",
       "      </defs>\r\n",
       "      <g transform=\"translate(178.821875 157.698438)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-56\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"xtick_5\">\r\n",
       "     <g id=\"line2d_9\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 225.403125 143.1 \r\n",
       "L 225.403125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_10\">\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"225.403125\" xlink:href=\"#mc0737f0bdd\" y=\"143.1\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_5\">\r\n",
       "      <!-- 10 -->\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 12.40625 8.296875 \r\n",
       "L 28.515625 8.296875 \r\n",
       "L 28.515625 63.921875 \r\n",
       "L 10.984375 60.40625 \r\n",
       "L 10.984375 69.390625 \r\n",
       "L 28.421875 72.90625 \r\n",
       "L 38.28125 72.90625 \r\n",
       "L 38.28125 8.296875 \r\n",
       "L 54.390625 8.296875 \r\n",
       "L 54.390625 0 \r\n",
       "L 12.40625 0 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-49\"/>\r\n",
       "       <path d=\"M 31.78125 66.40625 \r\n",
       "Q 24.171875 66.40625 20.328125 58.90625 \r\n",
       "Q 16.5 51.421875 16.5 36.375 \r\n",
       "Q 16.5 21.390625 20.328125 13.890625 \r\n",
       "Q 24.171875 6.390625 31.78125 6.390625 \r\n",
       "Q 39.453125 6.390625 43.28125 13.890625 \r\n",
       "Q 47.125 21.390625 47.125 36.375 \r\n",
       "Q 47.125 51.421875 43.28125 58.90625 \r\n",
       "Q 39.453125 66.40625 31.78125 66.40625 \r\n",
       "z\r\n",
       "M 31.78125 74.21875 \r\n",
       "Q 44.046875 74.21875 50.515625 64.515625 \r\n",
       "Q 56.984375 54.828125 56.984375 36.375 \r\n",
       "Q 56.984375 17.96875 50.515625 8.265625 \r\n",
       "Q 44.046875 -1.421875 31.78125 -1.421875 \r\n",
       "Q 19.53125 -1.421875 13.0625 8.265625 \r\n",
       "Q 6.59375 17.96875 6.59375 36.375 \r\n",
       "Q 6.59375 54.828125 13.0625 64.515625 \r\n",
       "Q 19.53125 74.21875 31.78125 74.21875 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-48\"/>\r\n",
       "      </defs>\r\n",
       "      <g transform=\"translate(219.040625 157.698438)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-49\"/>\r\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"text_6\">\r\n",
       "     <!-- epoch -->\r\n",
       "     <defs>\r\n",
       "      <path d=\"M 56.203125 29.59375 \r\n",
       "L 56.203125 25.203125 \r\n",
       "L 14.890625 25.203125 \r\n",
       "Q 15.484375 15.921875 20.484375 11.0625 \r\n",
       "Q 25.484375 6.203125 34.421875 6.203125 \r\n",
       "Q 39.59375 6.203125 44.453125 7.46875 \r\n",
       "Q 49.3125 8.734375 54.109375 11.28125 \r\n",
       "L 54.109375 2.78125 \r\n",
       "Q 49.265625 0.734375 44.1875 -0.34375 \r\n",
       "Q 39.109375 -1.421875 33.890625 -1.421875 \r\n",
       "Q 20.796875 -1.421875 13.15625 6.1875 \r\n",
       "Q 5.515625 13.8125 5.515625 26.8125 \r\n",
       "Q 5.515625 40.234375 12.765625 48.109375 \r\n",
       "Q 20.015625 56 32.328125 56 \r\n",
       "Q 43.359375 56 49.78125 48.890625 \r\n",
       "Q 56.203125 41.796875 56.203125 29.59375 \r\n",
       "z\r\n",
       "M 47.21875 32.234375 \r\n",
       "Q 47.125 39.59375 43.09375 43.984375 \r\n",
       "Q 39.0625 48.390625 32.421875 48.390625 \r\n",
       "Q 24.90625 48.390625 20.390625 44.140625 \r\n",
       "Q 15.875 39.890625 15.1875 32.171875 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-101\"/>\r\n",
       "      <path d=\"M 18.109375 8.203125 \r\n",
       "L 18.109375 -20.796875 \r\n",
       "L 9.078125 -20.796875 \r\n",
       "L 9.078125 54.6875 \r\n",
       "L 18.109375 54.6875 \r\n",
       "L 18.109375 46.390625 \r\n",
       "Q 20.953125 51.265625 25.265625 53.625 \r\n",
       "Q 29.59375 56 35.59375 56 \r\n",
       "Q 45.5625 56 51.78125 48.09375 \r\n",
       "Q 58.015625 40.1875 58.015625 27.296875 \r\n",
       "Q 58.015625 14.40625 51.78125 6.484375 \r\n",
       "Q 45.5625 -1.421875 35.59375 -1.421875 \r\n",
       "Q 29.59375 -1.421875 25.265625 0.953125 \r\n",
       "Q 20.953125 3.328125 18.109375 8.203125 \r\n",
       "z\r\n",
       "M 48.6875 27.296875 \r\n",
       "Q 48.6875 37.203125 44.609375 42.84375 \r\n",
       "Q 40.53125 48.484375 33.40625 48.484375 \r\n",
       "Q 26.265625 48.484375 22.1875 42.84375 \r\n",
       "Q 18.109375 37.203125 18.109375 27.296875 \r\n",
       "Q 18.109375 17.390625 22.1875 11.75 \r\n",
       "Q 26.265625 6.109375 33.40625 6.109375 \r\n",
       "Q 40.53125 6.109375 44.609375 11.75 \r\n",
       "Q 48.6875 17.390625 48.6875 27.296875 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-112\"/>\r\n",
       "      <path d=\"M 30.609375 48.390625 \r\n",
       "Q 23.390625 48.390625 19.1875 42.75 \r\n",
       "Q 14.984375 37.109375 14.984375 27.296875 \r\n",
       "Q 14.984375 17.484375 19.15625 11.84375 \r\n",
       "Q 23.34375 6.203125 30.609375 6.203125 \r\n",
       "Q 37.796875 6.203125 41.984375 11.859375 \r\n",
       "Q 46.1875 17.53125 46.1875 27.296875 \r\n",
       "Q 46.1875 37.015625 41.984375 42.703125 \r\n",
       "Q 37.796875 48.390625 30.609375 48.390625 \r\n",
       "z\r\n",
       "M 30.609375 56 \r\n",
       "Q 42.328125 56 49.015625 48.375 \r\n",
       "Q 55.71875 40.765625 55.71875 27.296875 \r\n",
       "Q 55.71875 13.875 49.015625 6.21875 \r\n",
       "Q 42.328125 -1.421875 30.609375 -1.421875 \r\n",
       "Q 18.84375 -1.421875 12.171875 6.21875 \r\n",
       "Q 5.515625 13.875 5.515625 27.296875 \r\n",
       "Q 5.515625 40.765625 12.171875 48.375 \r\n",
       "Q 18.84375 56 30.609375 56 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-111\"/>\r\n",
       "      <path d=\"M 48.78125 52.59375 \r\n",
       "L 48.78125 44.1875 \r\n",
       "Q 44.96875 46.296875 41.140625 47.34375 \r\n",
       "Q 37.3125 48.390625 33.40625 48.390625 \r\n",
       "Q 24.65625 48.390625 19.8125 42.84375 \r\n",
       "Q 14.984375 37.3125 14.984375 27.296875 \r\n",
       "Q 14.984375 17.28125 19.8125 11.734375 \r\n",
       "Q 24.65625 6.203125 33.40625 6.203125 \r\n",
       "Q 37.3125 6.203125 41.140625 7.25 \r\n",
       "Q 44.96875 8.296875 48.78125 10.40625 \r\n",
       "L 48.78125 2.09375 \r\n",
       "Q 45.015625 0.34375 40.984375 -0.53125 \r\n",
       "Q 36.96875 -1.421875 32.421875 -1.421875 \r\n",
       "Q 20.0625 -1.421875 12.78125 6.34375 \r\n",
       "Q 5.515625 14.109375 5.515625 27.296875 \r\n",
       "Q 5.515625 40.671875 12.859375 48.328125 \r\n",
       "Q 20.21875 56 33.015625 56 \r\n",
       "Q 37.15625 56 41.109375 55.140625 \r\n",
       "Q 45.0625 54.296875 48.78125 52.59375 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-99\"/>\r\n",
       "      <path d=\"M 54.890625 33.015625 \r\n",
       "L 54.890625 0 \r\n",
       "L 45.90625 0 \r\n",
       "L 45.90625 32.71875 \r\n",
       "Q 45.90625 40.484375 42.875 44.328125 \r\n",
       "Q 39.84375 48.1875 33.796875 48.1875 \r\n",
       "Q 26.515625 48.1875 22.3125 43.546875 \r\n",
       "Q 18.109375 38.921875 18.109375 30.90625 \r\n",
       "L 18.109375 0 \r\n",
       "L 9.078125 0 \r\n",
       "L 9.078125 75.984375 \r\n",
       "L 18.109375 75.984375 \r\n",
       "L 18.109375 46.1875 \r\n",
       "Q 21.34375 51.125 25.703125 53.5625 \r\n",
       "Q 30.078125 56 35.796875 56 \r\n",
       "Q 45.21875 56 50.046875 50.171875 \r\n",
       "Q 54.890625 44.34375 54.890625 33.015625 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-104\"/>\r\n",
       "     </defs>\r\n",
       "     <g transform=\"translate(112.525 171.376563)scale(0.1 -0.1)\">\r\n",
       "      <use xlink:href=\"#DejaVuSans-101\"/>\r\n",
       "      <use x=\"61.523438\" xlink:href=\"#DejaVuSans-112\"/>\r\n",
       "      <use x=\"125\" xlink:href=\"#DejaVuSans-111\"/>\r\n",
       "      <use x=\"186.181641\" xlink:href=\"#DejaVuSans-99\"/>\r\n",
       "      <use x=\"241.162109\" xlink:href=\"#DejaVuSans-104\"/>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "   </g>\r\n",
       "   <g id=\"matplotlib.axis_2\">\r\n",
       "    <g id=\"ytick_1\">\r\n",
       "     <g id=\"line2d_11\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 30.103125 120.45 \r\n",
       "L 225.403125 120.45 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_12\">\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 0 0 \r\n",
       "L -3.5 0 \r\n",
       "\" id=\"m3e7ade7dbb\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n",
       "      </defs>\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m3e7ade7dbb\" y=\"120.45\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_7\">\r\n",
       "      <!-- 0.4 -->\r\n",
       "      <defs>\r\n",
       "       <path d=\"M 10.6875 12.40625 \r\n",
       "L 21 12.40625 \r\n",
       "L 21 0 \r\n",
       "L 10.6875 0 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-46\"/>\r\n",
       "      </defs>\r\n",
       "      <g transform=\"translate(7.2 124.249219)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-48\"/>\r\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n",
       "       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-52\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"ytick_2\">\r\n",
       "     <g id=\"line2d_13\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 30.103125 75.15 \r\n",
       "L 225.403125 75.15 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_14\">\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m3e7ade7dbb\" y=\"75.15\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_8\">\r\n",
       "      <!-- 0.6 -->\r\n",
       "      <g transform=\"translate(7.2 78.949219)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-48\"/>\r\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n",
       "       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-54\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"ytick_3\">\r\n",
       "     <g id=\"line2d_15\">\r\n",
       "      <path clip-path=\"url(#ped5acae503)\" d=\"M 30.103125 29.85 \r\n",
       "L 225.403125 29.85 \r\n",
       "\" style=\"fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;\"/>\r\n",
       "     </g>\r\n",
       "     <g id=\"line2d_16\">\r\n",
       "      <g>\r\n",
       "       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"30.103125\" xlink:href=\"#m3e7ade7dbb\" y=\"29.85\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "     <g id=\"text_9\">\r\n",
       "      <!-- 0.8 -->\r\n",
       "      <g transform=\"translate(7.2 33.649219)scale(0.1 -0.1)\">\r\n",
       "       <use xlink:href=\"#DejaVuSans-48\"/>\r\n",
       "       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n",
       "       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-56\"/>\r\n",
       "      </g>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "   </g>\r\n",
       "   <g id=\"line2d_17\">\r\n",
       "    <path clip-path=\"url(#ped5acae503)\" d=\"M 0 0 \r\n",
       "\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"line2d_18\">\r\n",
       "    <path clip-path=\"url(#ped5acae503)\" style=\"fill:none;stroke:#bf00bf;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"line2d_19\">\r\n",
       "    <path clip-path=\"url(#ped5acae503)\" style=\"fill:none;stroke:#008000;stroke-dasharray:9.6,2.4,1.5,2.4;stroke-dashoffset:0;stroke-width:1.5;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"patch_3\">\r\n",
       "    <path d=\"M 30.103125 143.1 \r\n",
       "L 30.103125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"patch_4\">\r\n",
       "    <path d=\"M 225.403125 143.1 \r\n",
       "L 225.403125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"patch_5\">\r\n",
       "    <path d=\"M 30.103125 143.1 \r\n",
       "L 225.403125 143.1 \r\n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"patch_6\">\r\n",
       "    <path d=\"M 30.103125 7.2 \r\n",
       "L 225.403125 7.2 \r\n",
       "\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n",
       "   </g>\r\n",
       "   <g id=\"legend_1\">\r\n",
       "    <g id=\"patch_7\">\r\n",
       "     <path d=\"M 140.634375 59.234375 \r\n",
       "L 218.403125 59.234375 \r\n",
       "Q 220.403125 59.234375 220.403125 57.234375 \r\n",
       "L 220.403125 14.2 \r\n",
       "Q 220.403125 12.2 218.403125 12.2 \r\n",
       "L 140.634375 12.2 \r\n",
       "Q 138.634375 12.2 138.634375 14.2 \r\n",
       "L 138.634375 57.234375 \r\n",
       "Q 138.634375 59.234375 140.634375 59.234375 \r\n",
       "z\r\n",
       "\" style=\"fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;\"/>\r\n",
       "    </g>\r\n",
       "    <g id=\"line2d_20\">\r\n",
       "     <path d=\"M 142.634375 20.298438 \r\n",
       "L 162.634375 20.298438 \r\n",
       "\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\r\n",
       "    </g>\r\n",
       "    <g id=\"line2d_21\"/>\r\n",
       "    <g id=\"text_10\">\r\n",
       "     <!-- train loss -->\r\n",
       "     <defs>\r\n",
       "      <path d=\"M 18.3125 70.21875 \r\n",
       "L 18.3125 54.6875 \r\n",
       "L 36.8125 54.6875 \r\n",
       "L 36.8125 47.703125 \r\n",
       "L 18.3125 47.703125 \r\n",
       "L 18.3125 18.015625 \r\n",
       "Q 18.3125 11.328125 20.140625 9.421875 \r\n",
       "Q 21.96875 7.515625 27.59375 7.515625 \r\n",
       "L 36.8125 7.515625 \r\n",
       "L 36.8125 0 \r\n",
       "L 27.59375 0 \r\n",
       "Q 17.1875 0 13.234375 3.875 \r\n",
       "Q 9.28125 7.765625 9.28125 18.015625 \r\n",
       "L 9.28125 47.703125 \r\n",
       "L 2.6875 47.703125 \r\n",
       "L 2.6875 54.6875 \r\n",
       "L 9.28125 54.6875 \r\n",
       "L 9.28125 70.21875 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-116\"/>\r\n",
       "      <path d=\"M 41.109375 46.296875 \r\n",
       "Q 39.59375 47.171875 37.8125 47.578125 \r\n",
       "Q 36.03125 48 33.890625 48 \r\n",
       "Q 26.265625 48 22.1875 43.046875 \r\n",
       "Q 18.109375 38.09375 18.109375 28.8125 \r\n",
       "L 18.109375 0 \r\n",
       "L 9.078125 0 \r\n",
       "L 9.078125 54.6875 \r\n",
       "L 18.109375 54.6875 \r\n",
       "L 18.109375 46.1875 \r\n",
       "Q 20.953125 51.171875 25.484375 53.578125 \r\n",
       "Q 30.03125 56 36.53125 56 \r\n",
       "Q 37.453125 56 38.578125 55.875 \r\n",
       "Q 39.703125 55.765625 41.0625 55.515625 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-114\"/>\r\n",
       "      <path d=\"M 34.28125 27.484375 \r\n",
       "Q 23.390625 27.484375 19.1875 25 \r\n",
       "Q 14.984375 22.515625 14.984375 16.5 \r\n",
       "Q 14.984375 11.71875 18.140625 8.90625 \r\n",
       "Q 21.296875 6.109375 26.703125 6.109375 \r\n",
       "Q 34.1875 6.109375 38.703125 11.40625 \r\n",
       "Q 43.21875 16.703125 43.21875 25.484375 \r\n",
       "L 43.21875 27.484375 \r\n",
       "z\r\n",
       "M 52.203125 31.203125 \r\n",
       "L 52.203125 0 \r\n",
       "L 43.21875 0 \r\n",
       "L 43.21875 8.296875 \r\n",
       "Q 40.140625 3.328125 35.546875 0.953125 \r\n",
       "Q 30.953125 -1.421875 24.3125 -1.421875 \r\n",
       "Q 15.921875 -1.421875 10.953125 3.296875 \r\n",
       "Q 6 8.015625 6 15.921875 \r\n",
       "Q 6 25.140625 12.171875 29.828125 \r\n",
       "Q 18.359375 34.515625 30.609375 34.515625 \r\n",
       "L 43.21875 34.515625 \r\n",
       "L 43.21875 35.40625 \r\n",
       "Q 43.21875 41.609375 39.140625 45 \r\n",
       "Q 35.0625 48.390625 27.6875 48.390625 \r\n",
       "Q 23 48.390625 18.546875 47.265625 \r\n",
       "Q 14.109375 46.140625 10.015625 43.890625 \r\n",
       "L 10.015625 52.203125 \r\n",
       "Q 14.9375 54.109375 19.578125 55.046875 \r\n",
       "Q 24.21875 56 28.609375 56 \r\n",
       "Q 40.484375 56 46.34375 49.84375 \r\n",
       "Q 52.203125 43.703125 52.203125 31.203125 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-97\"/>\r\n",
       "      <path d=\"M 9.421875 54.6875 \r\n",
       "L 18.40625 54.6875 \r\n",
       "L 18.40625 0 \r\n",
       "L 9.421875 0 \r\n",
       "z\r\n",
       "M 9.421875 75.984375 \r\n",
       "L 18.40625 75.984375 \r\n",
       "L 18.40625 64.59375 \r\n",
       "L 9.421875 64.59375 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-105\"/>\r\n",
       "      <path d=\"M 54.890625 33.015625 \r\n",
       "L 54.890625 0 \r\n",
       "L 45.90625 0 \r\n",
       "L 45.90625 32.71875 \r\n",
       "Q 45.90625 40.484375 42.875 44.328125 \r\n",
       "Q 39.84375 48.1875 33.796875 48.1875 \r\n",
       "Q 26.515625 48.1875 22.3125 43.546875 \r\n",
       "Q 18.109375 38.921875 18.109375 30.90625 \r\n",
       "L 18.109375 0 \r\n",
       "L 9.078125 0 \r\n",
       "L 9.078125 54.6875 \r\n",
       "L 18.109375 54.6875 \r\n",
       "L 18.109375 46.1875 \r\n",
       "Q 21.34375 51.125 25.703125 53.5625 \r\n",
       "Q 30.078125 56 35.796875 56 \r\n",
       "Q 45.21875 56 50.046875 50.171875 \r\n",
       "Q 54.890625 44.34375 54.890625 33.015625 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-110\"/>\r\n",
       "      <path id=\"DejaVuSans-32\"/>\r\n",
       "      <path d=\"M 9.421875 75.984375 \r\n",
       "L 18.40625 75.984375 \r\n",
       "L 18.40625 0 \r\n",
       "L 9.421875 0 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-108\"/>\r\n",
       "      <path d=\"M 44.28125 53.078125 \r\n",
       "L 44.28125 44.578125 \r\n",
       "Q 40.484375 46.53125 36.375 47.5 \r\n",
       "Q 32.28125 48.484375 27.875 48.484375 \r\n",
       "Q 21.1875 48.484375 17.84375 46.4375 \r\n",
       "Q 14.5 44.390625 14.5 40.28125 \r\n",
       "Q 14.5 37.15625 16.890625 35.375 \r\n",
       "Q 19.28125 33.59375 26.515625 31.984375 \r\n",
       "L 29.59375 31.296875 \r\n",
       "Q 39.15625 29.25 43.1875 25.515625 \r\n",
       "Q 47.21875 21.78125 47.21875 15.09375 \r\n",
       "Q 47.21875 7.46875 41.1875 3.015625 \r\n",
       "Q 35.15625 -1.421875 24.609375 -1.421875 \r\n",
       "Q 20.21875 -1.421875 15.453125 -0.5625 \r\n",
       "Q 10.6875 0.296875 5.421875 2 \r\n",
       "L 5.421875 11.28125 \r\n",
       "Q 10.40625 8.6875 15.234375 7.390625 \r\n",
       "Q 20.0625 6.109375 24.8125 6.109375 \r\n",
       "Q 31.15625 6.109375 34.5625 8.28125 \r\n",
       "Q 37.984375 10.453125 37.984375 14.40625 \r\n",
       "Q 37.984375 18.0625 35.515625 20.015625 \r\n",
       "Q 33.0625 21.96875 24.703125 23.78125 \r\n",
       "L 21.578125 24.515625 \r\n",
       "Q 13.234375 26.265625 9.515625 29.90625 \r\n",
       "Q 5.8125 33.546875 5.8125 39.890625 \r\n",
       "Q 5.8125 47.609375 11.28125 51.796875 \r\n",
       "Q 16.75 56 26.8125 56 \r\n",
       "Q 31.78125 56 36.171875 55.265625 \r\n",
       "Q 40.578125 54.546875 44.28125 53.078125 \r\n",
       "z\r\n",
       "\" id=\"DejaVuSans-115\"/>\r\n",
       "     </defs>\r\n",
       "     <g transform=\"translate(170.634375 23.798438)scale(0.1 -0.1)\">\r\n",
       "      <use xlink:href=\"#DejaVuSans-116\"/>\r\n",
       "      <use x=\"39.208984\" xlink:href=\"#DejaVuSans-114\"/>\r\n",
       "      <use x=\"80.322266\" xlink:href=\"#DejaVuSans-97\"/>\r\n",
       "      <use x=\"141.601562\" xlink:href=\"#DejaVuSans-105\"/>\r\n",
       "      <use x=\"169.384766\" xlink:href=\"#DejaVuSans-110\"/>\r\n",
       "      <use x=\"232.763672\" xlink:href=\"#DejaVuSans-32\"/>\r\n",
       "      <use x=\"264.550781\" xlink:href=\"#DejaVuSans-108\"/>\r\n",
       "      <use x=\"292.333984\" xlink:href=\"#DejaVuSans-111\"/>\r\n",
       "      <use x=\"353.515625\" xlink:href=\"#DejaVuSans-115\"/>\r\n",
       "      <use x=\"405.615234\" xlink:href=\"#DejaVuSans-115\"/>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"line2d_22\">\r\n",
       "     <path d=\"M 142.634375 34.976562 \r\n",
       "L 162.634375 34.976562 \r\n",
       "\" style=\"fill:none;stroke:#bf00bf;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;\"/>\r\n",
       "    </g>\r\n",
       "    <g id=\"line2d_23\"/>\r\n",
       "    <g id=\"text_11\">\r\n",
       "     <!-- train acc -->\r\n",
       "     <g transform=\"translate(170.634375 38.476562)scale(0.1 -0.1)\">\r\n",
       "      <use xlink:href=\"#DejaVuSans-116\"/>\r\n",
       "      <use x=\"39.208984\" xlink:href=\"#DejaVuSans-114\"/>\r\n",
       "      <use x=\"80.322266\" xlink:href=\"#DejaVuSans-97\"/>\r\n",
       "      <use x=\"141.601562\" xlink:href=\"#DejaVuSans-105\"/>\r\n",
       "      <use x=\"169.384766\" xlink:href=\"#DejaVuSans-110\"/>\r\n",
       "      <use x=\"232.763672\" xlink:href=\"#DejaVuSans-32\"/>\r\n",
       "      <use x=\"264.550781\" xlink:href=\"#DejaVuSans-97\"/>\r\n",
       "      <use x=\"325.830078\" xlink:href=\"#DejaVuSans-99\"/>\r\n",
       "      <use x=\"380.810547\" xlink:href=\"#DejaVuSans-99\"/>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "    <g id=\"line2d_24\">\r\n",
       "     <path d=\"M 142.634375 49.654688 \r\n",
       "L 162.634375 49.654688 \r\n",
       "\" style=\"fill:none;stroke:#008000;stroke-dasharray:9.6,2.4,1.5,2.4;stroke-dashoffset:0;stroke-width:1.5;\"/>\r\n",
       "    </g>\r\n",
       "    <g id=\"line2d_25\"/>\r\n",
       "    <g id=\"text_12\">\r\n",
       "     <!-- test acc -->\r\n",
       "     <g transform=\"translate(170.634375 53.154688)scale(0.1 -0.1)\">\r\n",
       "      <use xlink:href=\"#DejaVuSans-116\"/>\r\n",
       "      <use x=\"39.208984\" xlink:href=\"#DejaVuSans-101\"/>\r\n",
       "      <use x=\"100.732422\" xlink:href=\"#DejaVuSans-115\"/>\r\n",
       "      <use x=\"152.832031\" xlink:href=\"#DejaVuSans-116\"/>\r\n",
       "      <use x=\"192.041016\" xlink:href=\"#DejaVuSans-32\"/>\r\n",
       "      <use x=\"223.828125\" xlink:href=\"#DejaVuSans-97\"/>\r\n",
       "      <use x=\"285.107422\" xlink:href=\"#DejaVuSans-99\"/>\r\n",
       "      <use x=\"340.087891\" xlink:href=\"#DejaVuSans-99\"/>\r\n",
       "     </g>\r\n",
       "    </g>\r\n",
       "   </g>\r\n",
       "  </g>\r\n",
       " </g>\r\n",
       " <defs>\r\n",
       "  <clipPath id=\"ped5acae503\">\r\n",
       "   <rect height=\"135.9\" width=\"195.3\" x=\"30.103125\" y=\"7.2\"/>\r\n",
       "  </clipPath>\r\n",
       " </defs>\r\n",
       "</svg>\r\n"
      ],
      "text/plain": [
       "<Figure size 252x180 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "class Animator: #@save\n",
    "    \"\"\"在动画中绘制数据\"\"\"\n",
    "    def __init__(self, xlabel=None, ylabel=None, legend=None, xlim=None,\n",
    "                 ylim=None, xscale='linear', yscale='linear',\n",
    "    fmts=('-', 'm--', 'g-.', 'r:'), nrows=1, ncols=1,\n",
    "    figsize=(3.5, 2.5)):\n",
    "        def set_axes(axes, xlabel, ylabel, xlim, ylim, xscale, yscale, legend):\n",
    "            \"\"\"设置matplotlib的轴\n",
    "            Defined in :numref:`sec_calculus`\"\"\"\n",
    "            axes.set_xlabel(xlabel)\n",
    "            axes.set_ylabel(ylabel)\n",
    "            axes.set_xscale(xscale)\n",
    "            axes.set_yscale(yscale)\n",
    "            axes.set_xlim(xlim)\n",
    "            axes.set_ylim(ylim)\n",
    "            if legend:\n",
    "                axes.legend(legend)\n",
    "            axes.grid()\n",
    "        # 增量地绘制多条线\n",
    "        if legend is None:\n",
    "            legend = []\n",
    "        display.set_matplotlib_formats('svg')\n",
    "        self.fig, self.axes = plt.subplots(nrows, ncols, figsize=figsize)\n",
    "        if nrows * ncols == 1:\n",
    "            self.axes = [self.axes, ]\n",
    "        # 使⽤lambda函数捕获参数\n",
    "        self.config_axes = lambda: set_axes(\n",
    "        self.axes[0], xlabel, ylabel, xlim, ylim, xscale, yscale, legend)\n",
    "        self.X, self.Y, self.fmts = None, None, fmts\n",
    "    def add(self, x, y):\n",
    "        # 向图表中添加多个数据点\n",
    "        if not hasattr(y, \"__len__\"):\n",
    "            y = [y]\n",
    "        n = len(y)\n",
    "        if not hasattr(x, \"__len__\"):\n",
    "            x = [x] * n\n",
    "        if not self.X:\n",
    "            self.X = [[] for _ in range(n)]\n",
    "        if not self.Y:\n",
    "            self.Y = [[] for _ in range(n)]\n",
    "        for i, (a, b) in enumerate(zip(x, y)):\n",
    "            if a is not None and b is not None:\n",
    "                self.X[i].append(a)\n",
    "                self.Y[i].append(b)\n",
    "        self.axes[0].cla()\n",
    "        for x, y, fmt in zip(self.X, self.Y, self.fmts):\n",
    "            self.axes[0].plot(x, y, fmt)\n",
    "        self.config_axes()\n",
    "        display.display(self.fig)\n",
    "        display.clear_output(wait=True)\n",
    "def train_ch3(net, train_iter, test_iter, loss, num_epochs, updater): #@save\n",
    "    \"\"\"训练模型（定义⻅第3章）\"\"\"\n",
    "    animator = Animator(xlabel='epoch', xlim=[1, num_epochs], ylim=[0.3, 0.9],\n",
    "    legend=['train loss', 'train acc', 'test acc'])\n",
    "    for epoch in range(num_epochs):\n",
    "        train_metrics = train_epoch_ch3(net, train_iter, loss, updater)\n",
    "        test_acc = evaluate_accuracy(net, test_iter)\n",
    "        animator.add(epoch + 1, train_metrics + (test_acc,))\n",
    "    train_loss, train_acc = train_metrics\n",
    "    assert train_loss < 0.5, train_loss\n",
    "    assert train_acc <= 1 and train_acc > 0.7, train_acc\n",
    "    assert test_acc <= 1 and test_acc > 0.7, test_acc\n",
    "lr = 0.1\n",
    "def updater(batch_size):\n",
    "    def sgd(params, lr, batch_size):  # 本函数已保存在d2lzh_pytorch包中方便以后使用\n",
    "        for param in params:\n",
    "            param.data -= lr * param.grad / batch_size  # 注意这里更改param时用的param.data\n",
    "    return sgd([W, b], lr, batch_size)\n",
    "num_epochs = 10\n",
    "train_ch3(net, train_iter, test_iter, cross_entropy, num_epochs, updater)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def predict_ch3(net, test_iter, n=6): #@save\n",
    "    \"\"\"预测标签（定义⻅第3章）\"\"\"\n",
    "    for X, y in test_iter:\n",
    "        break\n",
    "    trues = d2l.get_fashion_mnist_labels(y)\n",
    "    preds = d2l.get_fashion_mnist_labels(net(X).argmax(axis=1))\n",
    "    titles = [true +'\\n' + pred for true, pred in zip(trues, preds)]\n",
    "    d2l.show_images(\n",
    "        X[0:n].reshape((n, 28, 28)), 1, n, titles=titles[0:n])\n",
    "predict_ch3(net, test_iter)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "softmax回归简洁实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# PyTorch不会隐式地调整输⼊的形状。因此，\n",
    "# 我们在线性层前定义了展平层（flatten），来调整⽹络输⼊的形状\n",
    "net = nn.Sequential(nn.Flatten(), nn.Linear(784, 10))\n",
    "def init_weights(m):\n",
    "    if type(m) == nn.Linear:\n",
    "        nn.init.normal_(m.weight, std=0.01)\n",
    "net.apply(init_weights)\n",
    "loss = nn.CrossEntropyLoss()\n",
    "trainer = torch.optim.SGD(net.parameters(), lr=0.1)\n",
    "num_epochs = 10\n",
    "d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
